<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>016_键盘</title>
</head>
<body>

<script type="text/javascript">
    /**
     * 键盘事件：
     *  onkeydown: 按键被按下
     *      对于onkeydown来说如果一直按着某个键不松手，则事件会一直触发，当onkeydown连续被触发时，第一次和第二次之间会间隔稍微长一点，其他的会非常快
     *      这种设计是为了防止误操作
     *  onkeyup: 按键被按下
     *
     *  键盘事件一般都会绑定给一些可以获取到焦点的对象或者是document
     */

    document.onkeydown = function (event) {
        /**
         * 通过keyCode来获取按键的编码，可以判断出哪个按键被摁下了
         *
         * 除了keyCode，事件对象中还提供了几个属性：altKey、ctrlKey、shiftKey
         * 这三个属性用来判断alt ctrl shift是否被按下，如果按下则返回true，否则返回false
         */
        if(!event) event = window.event;
        console.log(event.keyCode);

        /**
         * ctrl和Y同时被按下，打印hello world
         */
        if(event.keyCode === 89 && event.ctrlKey) {
            console.log("hello world");
        }
    };
    document.onkeyup = function () {
        // console.log("hello");
    };

    /**
     *
     *  在文本框中输入内容，属于onkeydown的默认行为，如果在onkeydown中取消了默认行为，则输入的内容，不会出现在文本框中。
     *
     *  数字：48-57
     *  是文本框不能输入数字，做出判断即可：event.keyCode >= 48 && event.keyCode <=57
     */
</script>
</body>
</html>